#pragma once
#include "IComponent.h"

namespace ZeEngine
{
	class SDLTexture;

    class IRenderableComponent : public IComponent
    {
		friend class SDLRenderable;

    public:
		IRenderableComponent(const std::string& name, s64& type, s64& index);
        virtual ~IRenderableComponent();

		void SetZ(s32 z);
		s32  GetZ();

    private:
		s32			   m_z;

        virtual void Render(SDL_Renderer& renderer, const Vector2D<float> position, const f32 rotation, f32 interpolation) = 0;
		virtual SDLTexture* GetTexture() const = 0;
    };
}

